#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QImage>
#include <QPixmap>
#include <QTimer>
#include <QLabel>
#include <QPainter>
#include <opencv2/opencv.hpp>
#include <Camera/camera.h>
#include <FaceDetect/facedetect.h>
#include <QDate>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    /** @brief  图像更新
    */
    void updateImg();

    /** @brief  设置相机相关按钮可不可用
    */
    void setCameraWidgetEnable(bool state);
    /** @brief 在Label绘制图像，使用参数格式为cv::Mat
    */
    void drawImgOnLabel(const cv::Mat& inputImg, QLabel* imgLabel);

private:
    //相机
    Camera* camera;

    Ui::MainWindow *ui;

    QPainter* painter;

    //初始化
    void init();
    //软件运行计时
    QTimer runtimeTimer;
    uint runtime[4] = {0,0,0,0};    //second,minete,hour,day

protected:
    /** @brief  窗体重绘时调用
    */
    void paintEvent(QPaintEvent *e);

private slots:
    void on_btnCameraOpen_clicked(bool checked);
    void on_btnCameraConnect_clicked(bool checked);
    void on_btnFaceDetect_clicked(bool checked);
    void on_btnEyeDetect_clicked(bool checked);
    void on_btnSupervise_clicked(bool checked);
};
#endif // MAINWINDOW_H
